{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "ex0=np.loadtxt(\"ex0.txt\")\n",
    "x,y=ex0[:,:-1],ex0[:,-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plotShow(dataSet):\n",
    "    x,y=dataSet[:,:-1],dataSet[:,-1]\n",
    "    plt.scatter(x[:,1],y,c='b',s=5)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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J+DfIPalAQBYRRhBxFhhFQCQCNSMIGKBK6y+8QZ70QAAYkfPSIJEMqSRakpKzB4RwzCLU3t66CkBAMQuxW+PzhXJkEaqBZbA4tRdu9iLBgAQOwff+lJbJJvGxasGI1mhJrA4taZGev31/p4SpvECAKJBGEmQkhKpubn/uXcjOd+QEK9dbu0qLGUaLwAgHihgTZDqanOzOK8dO8xCT98iT98l1GPpWYhXqLHK21Oyfbv56OQhJgCAc1kKI+vXr1dxcbHy8/OVn58vt9utV155JeT5Gzdu1IwZMzRy5EiNHDlSpaWleuutt2JudCrIyRl4c96xQyor6w8k1dVmj0ZZmfkYac+Cx+M/i8XtZtVTAEDqchmG716r4f3Xf/2XsrOzdf7558swDG3atElr167VgQMHNGXKlAHnL1iwQNOnT9e0adOUl5enhx56SNu2bdP777+vwsLCiBvZ2dmpgoICdXR0KD8/P+L32a2mRlq+fODxlStjG0apqekflnG5zN+VlZWYmhHfepRp08xr7t2bGgW3AAB7RXr/thRGghk1apTWrl2rxYsXD3puT0+PRo4cqccff1zl5eURXyNVw4jHI40eLX39tf/xsjJzaCNas2b516PE+vuk0EWwoQKVy2UGIqbyAgBCifT+HfX/1/b09GjLli06fvy43G53RO/57rvvdOrUKY0aNSrsed3d3eru7u573tnZGW0zkybUzfwXvzBv6L5iHUYJXO8j2t/n22aPR2ppGVgEG6r+hKm8AIB4sRxGWltb5Xa7deLECQ0bNkzbtm3TRRddFNF7lyxZovHjx6u0tDTseXV1dVq5cqXVptkqcEZLb685dLJnjzRzptTebgaHhQtjn3USr1ksvm325Rs0AmcFeVGbAgCIF8vDNCdPnlR7e7s6Ojq0detWPf3009q5c+eggaS+vl5r1qxRS0uLiouLw54brGekqKjI0cM0gUMnEyZIbW39zx980KwVcZLANnv5DsF4POZ5O3b0vz5hgrRoETUjAIDwklYzUlpaqokTJ2rDhg0hz3n44Ye1atUqvfrqq7ryyistX8NpNSPBhmR8exlcLmnECP9akQkTpE8/je81owkCoYZmJHMqck6O+fvvu09as4bCVQBA9BJeM+LV29vr14sRaM2aNVq9erWampqiCiJOFGyRscChk9/9zj+MfP31wEXPYr1mNMWj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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plotShow(ex0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((200, 2), (1, 200))"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xMat = np.mat(x)\n",
    "yMat = np.mat(y)\n",
    "xMat.shape,yMat.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 2)"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(xMat.T * xMat).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(matrix([[3.00774324],\n",
       "         [1.69532264]]),\n",
       " (2, 1))"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ws = (xMat.T * xMat).I * xMat.T * yMat.T\n",
    "ws,ws.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制最佳拟合直线\n",
    "plt.scatter(xMat.A[:,1],yMat.A,c='b',s=5)\n",
    "yHat = xMat.dot(ws)\n",
    "plt.plot(xMat.A[:,1],yHat.A.flatten(),c='r')\n",
    "plt.show()\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "d44d76ef8cbbc4331cecfe2e59228ac31ebb71026289858a116838be7168b60b"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
